The present invention is directed, in general, to data streaming systems and, more specifically, to a decoder buffer for use in a streaming data receiver, such as a streaming video receiver.
Real-time streaming of data, such as multimedia content, over Internet protocol (IP) networks has become an increasingly common application in recent years. A wide range of interactive and non-interactive multimedia Internet applications, such as news on-demand, live TV viewing, video conferencing, and many others, rely on end-to-end streaming solutions. Unlike a xe2x80x9cdownloadedxe2x80x9d audio or video file, which may be retrieved first in xe2x80x9cnon-realxe2x80x9d time and viewed or played back later, streaming audio and streaming video applications require an audio source or video source to encode and to transmit an audio signal or video signal over a network to an audio receiver or a video receiver, which must decode and display (or play back) the transmitted signal in real time. The receiver relies on a decoder buffer to receive encoded video data packets and/or encoded audio data packets from the network and to transfer the packets to a video decoder and/or an audio decoder.
Two problems arise when a streaming data signal is transmitted across a non-guaranteed Quality-of-Service (QoS) network, such as the Internet. First, end-to-end variations in the network (e.g., delay jitter) between the streaming data transmitter and the streaming data receiver mean that the end-to-end delay is not constant. Second, there is usually a significant packet loss rate across non-QoS networks, often requiring re-transmission. The lost data packet must be recovered prior to the time the corresponding frame must be decoded. If not, an underflow event occurs. Furthermore, if prediction-based compression is used, an underflow due to lost data packets may not only impact the current frame being processed, but may affect many subsequent frames.
It is well-known that re-transmission of lost packets is a viable means of recovery for continuous media communication over packet networks. Many applications use a negative automatic repeat request (NACK) in conjunction with re-transmission of the lost packet. These approaches take into consideration both the round-trip delay and the delay jitter between the sender and the receiver(s).
For example, an end-to-end model with re-transmission for packet voice transmission has been developed. This model takes advantage of the fact that voice data consists of periods of silence separated by brief talk-spurt segments. The model also assumes that each talk-spurt consists of a fixed number of fixed-size packets. However, this model is not general enough to capture the characteristics of compressed video or audio (which can have variable number of bytes or packets per video or audio frame). Additionally, an adaptive playback algorithm has been developed that changes the playback time of a video frame in response to network conditions. This results in a time-varying playback rate (i.e., introduces xe2x80x9cplayback jitterxe2x80x9d) in response to network jitter and packet losses.
The above mentioned solutions can be applicable for voice data or for certain video applications which tolerate xe2x80x9cplayback jitter.xe2x80x9d However, these solutions may not be acceptable for many types of video-on-demand services (e.g., entertainment applications). In addition, while maintaining continuous decoding and displaying of the real-time audio/visual data, it is crucial for the selected packet loss recovery mechanism to modify its operation according to changing conditions during the Internet session in which the data is transmitted.
Any packet retransmission scheme must strike a balance in determining when to request retransmission of a late data packet. If a streaming data receiver waits too long before requesting retransmission of a late (and possibly lost) data packet, the requested data packet may not be received when needed, due to the round trip delay associated with the retransmission request and retransmission of the late data packet. However, if the streaming data receiver waits only a very brief period before requesting retransmission of a late (but not lost) data packet, an excessive amount of the limited bandwidth available between the streaming data transmitter and the streaming data receiver will be consumed by the increased number of unnecessary retransmission requests and the increased number of duplicate packet transmissions.
There is therefore a need in the art for improved streaming data receivers that compensate for variations inherent in a non-QoS network. In particular, there is a need for an improved receiver decoder buffer that takes into consideration both transport delay parameters (e.g., end-to-end delay and delay jitter) and video. (or audio) encoder buffer constraints. More particularly, there is a need for an improved decoder buffer that implements a packet loss recovery mechanism that modifies its operation according to changing conditions of the data network over which the streaming data is transmitted and minimizes the number of duplicate data packet transmissions.
The present invention is embodied in an Integrated Transport Decoder (ITD) buffer model. One key advantage of the ITD model is that it eliminates the separation of a network-transport buffer, which is typically used for removing delay jitter and recovering lost data, from the video/audio decoder buffer. This can significantly reduce the end-to-end delay, and optimize the usage of receiver resources (such as memory).
The present invention provides a re-transmission framework that uses a time-delay budget constraint for streaming video receiver during a real-time Internet session. In other words, at the beginning of the session, the streaming data receiver introduces a certain start-up delay to the incoming bitstream. This start-up delay defines the time-delay budget that the streaming data receiver can rely on for packet loss recovery for the remainder of the session. The re-transmission framework manages this time-delay budget in an adaptive manner in response to changing network conditions. The present invention maximizes the time for uninterrupted decoding and presentation of the multimedia content while minimizing time for duplicate-packet transfer events. These duplicate-packet transfer events occur when the streaming data receiver requests the re-transmission of packets prematurely, reducing the effective available bandwidth between the streaming data transmitter and the streaming data receiver.
It is a primary object of the present invention to provide a delay budget controller for use with a decoder buffer capable of receiving streaming data packets over a data network from a streaming transmitter and storing the data packets in a plurality of access units for subsequent retrieval by a streaming data decoder. In an advantageous embodiment, the delay budget controller comprises 1) a first controller capable of monitoring at least one network parameter associated with the data network; and 2) a second controller capable of monitoring in the decoder buffer a delay budget region comprising a sequence of access units that are about to be accessed sequentially by the data decoder, the delay budget region comprising a retransmission region and a late region separated by a temporal boundary, wherein the second controller detects missing data packets in the retransmission region and the late region and, in response to detection of a missing data packet in the retransmission region, transmits a retransmission request for the missing data packet to the streaming transmitter, and wherein the second controller is capable of adjusting the temporal boundary to thereby advance or retard the transmission of the retransmission request.
In one embodiment of the present invention, the second controller adjusts the temporal boundary in response to a measured value of the at least one network parameter.
In another embodiment of the present invention, the at least one network parameter comprises a round trip delay period associated with the retransmission request.
In still another embodiment of the present invention, the at least one network parameter comprises a delay jitter associated with a variation in the round trip delay period.
In yet another embodiment of the present invention, the at least one network parameter comprises an available bandwidth value associated with a communication channel between the streaming data transmitter and the decoder buffer.
In a further embodiment of the present invention, the first and second controllers are capable of determining a probability that a packet that is identified as lost by the first and second controllers is actually lost.
In a still further embodiment of the present invention, the second controller adjusts the temporal boundary in response to a value of the probability.
In a yet further embodiment of the present invention, the first controller is capable of adjusting a second temporal boundary associated with the delay budget region to thereby increase or decrease a duration of the delay budget region.
Those skilled in the art will readily understand that while the embodiment of the present invention described in the DETAILED DESCRIPTION OF THE INVENTION that follows is principally oriented towards streaming video (or audio), this is by way of illustration only. More broadly speaking, the improved integrated transport decoder buffer described below may be readily adapted for use in connection with any type of streaming data, including video data and audio data, that must be supplied to a decoder at a required rate.
The foregoing has outlined rather broadly the features and technical advantages of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features and advantages of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.
Before undertaking the DETAILED DESCRIPTION, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms xe2x80x9cincludexe2x80x9d and xe2x80x9ccomprise,xe2x80x9d as well as derivatives thereof., mean inclusion without limitation; the term xe2x80x9cor,xe2x80x9d is inclusive, meaning and/or; the phrases xe2x80x9cassociated withxe2x80x9d and xe2x80x9cassociated therewith,xe2x80x9d as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term xe2x80x9ccontrollerxe2x80x9d means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.